草庐IT

Java Swing 定时器

全部标签

c# - 在 WPF 中使用计时器刷新 UI(使用 BackgroundWorker?)

我们在WPF中有一个应用程序,它通过ObservableCollection显示数据。5分钟后,我想刷新数据。我想我可以为它的Elapsed事件使用System.Timers.Timer对象,然后调用BackgroundWorker来调用开始工作。该方法在ViewModel类上。但是线程好像有问题。所以我尝试使用Dispatcher,但还是一样。这是我的(简化且未优化的)代码://////Initializesanewinstanceoftheclass.///publicApplicationController(){CreateDefaultTabs();Timertimer=ne

c# - 当系统处于休眠状态时,Windows 服务中的计时器如何运行?

假设我有一个Windows服务,它有一个设置为每6小时运行一次的计时器,我希望它每天触发4次。假设:0000、0600、12001800。(军用时间,同00:00等...)如果系统在1000进入休眠状态,并在1700唤醒,会发生什么?它会在1900再次触发吗,因为它的计时器还有2小时?它会立即触发(因为它错过了1200的约会),然后在2300再次触发(在当前时间上加上6小时?)我注意到当计算机进入休眠状态时,它不会触发OnPause或OnContinue方法。如果有人能阐明上述情况下系统的行为,那就太好了。干杯,并提前致谢。 最佳答案

C# 计时器在它们的间隔时间之前被触发

我们在从Windows服务使用System.Threading.Timer(.NET2.0)时遇到以下问题。大约有12种不同的计时器对象..每个计时器都有到期时间和间隔。这是正确设置的。据观察,在3到4小时后,计时器在它们的间隔结束之前开始发出信号。例如,如果计时器应该在4:59:59发出信号,它会在4:59:52发出信号,即提前7秒。谁能告诉我这种行为的原因是什么以及解决方案是什么?谢谢,斯瓦特语 最佳答案 好问题...原因如下:对于计算机来说,“计时”是一件棘手的事情……您永远不能依赖“间隔”来做到完美。有些计算机只会每14到1

c# - 如何使用定时器等待?

我试图通过使用计时器来延迟我的方法中的事件,但是我不一定了解如何使用计时器来等待。我将计时器设置为2秒,但是当我运行这段代码时,最后一次调用没有2秒延迟。Timertimer=newTimer();timer.Tick+=newEventHandler(timer_Tick);//Everytimetimerticks,timer_Tickwillbecalledtimer.Interval=(1000)*(2);//Timerwilltickevertsecondtimer.Enabled=true;//Enablethetimervoidtimer_Tick(objectsende

c# - 秒表与计时器 - 何时使用

请原谅我提出这个问题,但我似乎无法找到何时使用哪个的良好来源。如果您能用简单的术语解释它,将很高兴。此外,我面临着这样的困境:看,我正在编写一个简单的应用程序。我希望它显示耗时(hh:mm:ss格式或其他格式)。而且,能够“加快”或“减慢”其时间间隔(即加快速度,以便实时的一分钟等于应用程序中的一小时)。例如,在Youtube视频中(*不考虑我们可以跳转到视频的特定部分*),我们会在左下角看到观看该视频所花费的实际时间屏幕一角,但通过在选项菜单中导航,我们可以加快或降低视频速度。我们实际上可以看到时间以与速度因子一致的方式更新(比如,如果你选择两倍的速度,下面的计时器更新速度比正常快两

C# 如何暂停定时器?

我有一个C#程序,如果用户停止与程序交互,我需要在其中停止计时器。它需要做的是暂停,然后在用户再次激活时重新启动。我做了一些研究,发现有这样的命令:timer.Stop();和timer.Start();但我想知道是否有:timer.Pause();然后当用户再次激活时,它会从中断处继续,不会重新启动。如果有人可以提供帮助,将不胜感激!谢谢,弥迦 最佳答案 您可以通过使用.NET中的Stopwatch类来实现此目的。通过简单地停止和启动,您可以继续使用秒表实例。确保使用usingSystem.Diagnostics;vartimer

c# - 我可以将 Task.Delay 用作计时器吗?

我想每秒执行一些代码。我现在使用的代码是:Task.Run((Action)ExecuteSomething);ExecuteSomething()定义如下:privatevoidExecuteSomething(){Task.Delay(1000).ContinueWith(t=>{//Dosomething.ExecuteSomething();});}这个方法会阻塞线程吗?或者我应该在C#中使用Timer类吗?似乎Timeralsodedicatesaseparatethreadforexecution(?) 最佳答案 Tas

c# - Console.ReadKey 与带有计时器的 Console.ReadLine

以下代码是一个众所周知的示例,用于显示调试版本和发布版本之间的区别:usingSystem;usingSystem.Threading;publicstaticclassProgram{publicstaticvoidMain(){Timert=newTimer(TimerCallback,null,0,2000);Console.ReadLine();}privatestaticvoidTimerCallback(Objecto){Console.WriteLine("InTimerCallback:"+DateTime.Now);GC.Collect();}}如果您使用调试配置运行

c# - 为什么通过 timeBeginPeriod 增加定时器分辨率会影响功耗?

我目前正在用C#编写一个应用程序,我需要在其中触发大约1秒的计时器。每5毫秒。从一些研究来看,执行此操作的最佳方法似乎涉及p/调用timeBeginPeriod(...)来更改系统计时器的分辨率。它在我的示例代码中运行良好。我在LarryOsterman的MSDN博客thisentry中发现了一个关于使用此函数的有趣警告。:Adam:callingtimeBeginPeriodincreasestheaccuracyofGetTickCountaswell.usingtimeBeginPeriodisahideouslybadideaingeneral-we'vebeenactivel

c# - 如何在处理经过的事件时阻止计时器?

我有一个计时器,它不需要同时处理其经过的事件处理程序。但是处理一个Elapsed事件可能会干扰其他事件。我实现了以下解决方案,但感觉有些不对劲;似乎我应该以不同的方式使用计时器或在线程空间中使用另一个对象。计时器似乎最合适,因为我确实需要定期检查状态,但有时检查时间会比我的间隔时间长。这是解决这个问题的最佳方法吗?//membervariableprivatestaticreadonlyobjecttimerLock=newobject();privateboolfound=false;//elsewheretimer.Interval=TimeSpan.FromSeconds(5).